A network system includes the hardware, and supporting software, necessary to transmit information between computers. One can distinguish between a physical hardware link between two network nodes (computers, switches, routers, and controllers, among others), and a software connection, which refers to an established communication channel between nodes that allows transmitted information to be understood at both transmission and receiver ends. This is achieved by having a common routing policy, and implies that two nodes may be linked by hardware, but unable to connect or communicate until an initialization procedure has been carried out to establish a communication channel.
A link may refer to the physical hardware used to join network nodes, and a network may be a shared local area network (LAN), wide area network (WAN), metropolitan area network (MAN), the Internet, or any other type of network or communication system suitable for transferring information between computer systems. Ethernet is a common family of technologies using the IEEE standard 802.3 for local area networking (LAN), and Ethernet network hardware links (the physical layer) commonly use a Category 5 (Cat 5) twisted pair Ethernet cable. Alternative hardware link types include coaxial cables, twisted pair cables categorized in order of increasing bandwidth from category 1 to category 7, optical fiber cables, or any other conductor capable of facilitating communication between two network nodes. Hardware links make up a large amount of the total hardware required to implement a network. Reduction in the number of links is desirable from a number of standpoints, including a capital cost savings in the setup of the network and replacement of cabling after failure, and a reduction in the complexity associated with manually ensuring hardware links are connected correctly.
The operation of network nodes can be conceptually divided between a data-plane and a control-plane, wherein the data-plane comprises the physical hardware necessary to forward data packets through a piece of network hardware, and the control-plane comprises the software that analyzes data packets arriving at, for example, a switch port, and executes certain redirection processes in response to the data packet's arrival. The control-plane maintains a routing table, listing all network addresses reachable from the given switch, and instructs the data-plane as to how to forward the data packet.
A centrally-controlled network, otherwise referred to as a software-defined network, is a methodology that allows for centralized control of a network of nodes from a dedicated hardware server, referred to as a centralized controller. Alternatively, a network may implement logically-centralized control of a network of nodes, wherein a logically-centralized controller may be implemented as distributed processes across multiple different central processing units (CPUs) in multiple servers. To implement centralized control, the control-plane is removed from the individual switches and routers, and replaced by an OpenFlow agent, which allows for remote control from a global control plane (otherwise referred to as a centralized controller, or simply as a controller).
An OpenFlow switch is an example of a network node that is controlled from a centralized controller. An OpenFlow switch consists of, among other things, a flow table, which stores rules as to how the switch will process incoming packets, a secure channel that connects to the global control plane, and the OpenFlow protocol that enables a centralized controller to communicate with the switch. A centralized controller, by using the OpenFlow protocol, can remotely program switch flow tables, send packets to any switch port, and receive packets from any switch port. Methodology for centralized control is described by OpenFlow, at www.openflow.org.
The devices that make up a centrally-controlled network may conventionally be connected by out-of-band hardware links, such that any two network nodes, which may include switches and routers, are connected by data-carrying out-of-band hardware links. Additionally, each network node is connected to a centralized controller, and each centralized controller is directly connected to other centralized controllers, by control information-carrying out-of-band hardware links. This methodology, while simple to initialize due to the direct connection between centralized controllers, has the disadvantage of an inherent lack of redundancy. For example, a failure of an out-of-band hardware link conveying control information between a network node and a centralized controller results in the network node being unreachable to control instructions.
As such, there is a need for improved systems and methods for increasing the redundancy, and for facilitating simple initialization, of a centrally-controlled network.